package com.shujia.service;

import com.shujia.bean.Message;
import com.shujia.bean.User;
import com.shujia.dao.UserDao;
import com.shujia.util.MD5;

/**
 * 业务层：具体的业务逻辑
 */
public class UserService {

    private UserDao userDao = new UserDao();

    /**
     * 登录方法
     *
     * @param username 用户米
     * @param password 密码
     * @return 登录情况
     */

    public Message login(String username, String password) {

        //1、判断用户名是否存在


        //通过用户名查询用户
        User user = userDao.findUserByUsername(username);

        if (user == null) {
            return new Message(300, "用户名不正确");
        }


        //加密之后和数据库中的密码进行对比
        String md5Password = MD5.md5(password);

        //2、判断密码是否正确
        if (!md5Password.equals(user.getPassword())) {
            return new Message(300, "密码不正确");
        }


        return new Message(200, "登录成功");
    }

    /**
     * 注册
     *
     * @param username    用户米
     * @param password    密码
     * @param nowPassword 确认密码
     * @return 状态
     */


    public Message register(String username, String password, String nowPassword) {

        //1、判断用户名是否存在

        User user = userDao.findUserByUsername(username);

        if (user != null) {
            return new Message(300, "用户已存在");
        }


        //2、判断密码是否一致

        if (!password.equals(nowPassword)) {
            return new Message(300, "密码不一致");
        }


        //对密码进行md5加密
        String md5Password = MD5.md5(password);


        //3、将数据插入数据库
        int flag = userDao.insert(new User(username, md5Password));

        if (flag == 0) {
            return new Message(300, "注册失败");
        }

        return new Message(200, "注册成功");
    }


    public Message modifyPassword(String username, String password, String newPassword, String nowPassword) {

        //1、登录

        User user = userDao.findUserByUsername(username);
        if (user == null) {
            return new Message(300, "用户名不存在");
        }

        //加密后和数据库中的密码进行对比
        if (!MD5.md5(password).equals(user.getPassword())) {
            return new Message(300, "原密码不正确");
        }

        //判断新密码是否一致
        if (!newPassword.equals(nowPassword)) {
            return new Message(300, "新密码不一致");
        }

        //修改密码
        String md5Password = MD5.md5(newPassword);

        //更新密码
        int i = userDao.updatePasswordByUsername(username, md5Password);

        if (i == 0) {
            return new Message(300, "密码修改失败");
        }

        return new Message(200, "密码修改成功");

    }


}
